

           Release notes for XRouter version 504j
           ######################################

I don't like releasing unfinished, untested or undocumented code,
but it has been over 6 months since the last release, and it looks
like being another couple of months before I can get all the rough
edges smoothed off, and the documetation up to date.

Sometimes the easiest way to find the rough edges is to let other
people do so!

Most of the changes are relatively minor, so this SHOULD be a drop-in replacement for version 504i.  The only area which *might* cause a
problem is the way the "at" field is handled in DISTRIB.SYS.


Static Versions
===============

Variants marked "-static" are 100% self contained programs with no
external dependencies.  Thus they should work on any version of Linux,
unlike the non-static versions which require specific versions of LIBC
to be present.

But one downside is that the Linux kernel resolver can not be used
from a statically linked application.  Thus in order to resolve
hostnames into IP addresses (e.g. for AXUDP, node map etc) you MUST
add a DNS line into XROUTER.CFG. I suggest "DNS=8.8.8.8".  This lets
XRouter use its own resolver.

The other downside is that ALSA audio cannot be compiled into static
versions either. If you want audio or kernel-based domain resolution,
you have to use a non-static version and put up with "dependency hell".

Generally, a version compiled on an old operating system such as Debian
"stretch", will work on a later O/S, but not the other way around.

Windows versions don't suffer from this lunacy. An EXE file is self-contained, and just works!


XrPi32v504j-static
==================

This was cross-compiled from X86-64, and hasn't been tested. Reports would be appreciated.


New MAN and HLP files
=====================

After unzipping the files, simply place them in the MAN or HLP directory as appropriate, overwriting the original files


Changes Since Version 504i
==========================

- Fixed:  If XrLin or XrPi (but not XrWin) was started in a terminal
          window that was too small, the display was unpredictable,
          and could result in a segmentation fault upon exit or
          restart. The window now resizes to the minimum (80x25).

- Fixed:  Memory leak in SMTP client.

- Fixed:  KISSOPTIONS were ignored on KISS over TCP interfaces. This
          had originally been deliberate policy, but was preventing
          the use of ACKMODE, required by the "SlowPacket" TNC.

- Fixed:  Since v502b, using PIPE without specifying a filter callsign,
          e.g. "PIPE=1" instead of "PIPE=1 G8PZT", could in some cases
          cause a segfault.

- Fixed:  Format of date in outgoing WP update messages was wrong.

- Fixed:  Data was not being extracted from incoming WP updates.

- Fixed:  WP update messages were not automatically marked as read, so
          they had to be manually deleted instead of being purged by
          the housekeeping. They are now deleted after "MaxAgePR" days.
          They are not deleted immediately, in case a problem needs to
          be traced.

- Fixed:  If IPROUTE.SYS did not contain an explicit or default route
          for a destination IP address, a repeating ping command would
          return the misleading error "Unrealistic bytes/sec".

- Fixed:  Using the IDTEXT command with a single argument would cause a
          segfault if no IDTEXT had previously been set.

- Fixed:  Rendering of accented characters was broken by v503e.

- Change: Setting CB=1 in XROUTER.CFG now disables position checking,
          which was preventing CB nodes from showing on the map.

- Change: To accommodate ARDC's changes to encap.json, xrouter now
          looks for the field name "cidr" instead of "maskLength".

- Change: LAPB stats can now be displayed separately from other ISO
          layer 2 stats, using the "S[tats] LAPB" command.

- Change: White Pages entries are now displayed in callsign order,
          instead of creation date order.

- Change: Improved wildcard matching in DISTRIB.SYS. If wildcards are
          NOT included, a "sliding match", is performed, e.g. EU
          matches EU and EURO, GBR matches .#76.GBR.EURO and so on.
          If wildcards ARE included, a "pattern match" is performed
          instead, so be careful to specify the FULL pattern, starting
          at the beginning of the hierarchical address. For example
          "*.#76.GBR.*", or "*.#7*.GBR.*" for a broader match.  A "*"
          by itself means "match any".

- Added:  $H (MaxHops) option to L3RTT frames.  If present, this
          conveys a node's MAXHOPS value. The intention is to reduce
          the amount of routing information that is sent, especially
          on RF, that the neighbour simply discards because it exceeds
          his MAXHOPS.  This is experimental! I don't know if it will
          work, if it will have unintended consequences, or if other
          authors have allocated the $H option for another purpose.

- Added:  RTT (Round Trip Time) to NRR (Netrom Record Route)

- Added:  Debug logging of part of boot sequence.

- Added:  Counts of views and likes on blog article list.

- Added:  Rudimentary SNMP (version 1), for accessing certain stats.
          The server is enabled by setting the TCP port number using
          the SNMPPORT directive in XROUTER.CFG, e.g. "SNMPPORT=1161" 

- Added:  Detailed info page for each ROUTE, on both the CLI and the
          HTTP interface.

- Added:  Detailed info page for each LINK, on both the CLI and the
          HTTP interface

- Added   LINKS page now displays L4 and TCP links, in addition to L2. 

- Added:  Detailed STATS pages for each ISO layer, on both the CLI and
          the HTTP interface.

- Added:  STATS to TCP command list

- Added:  BC[ast] T[imes] and N[odes] BC[ast] T[imes] to display nodes
          and INP3 broadcast timings.

- Added:  BBS management pages to HTTP interface.

- Added:  SMTP management pages to HTTP interface.

- Added:  More SMTP commands on the CLI.

- Added:  PNMP (Packet Network Monitoring Project) client.  This sends
          packet headers (but NOT the contents) and link events to a
          central server.  This data can then be used for diagnosing
          problems in the packet network.  The server address and port
          are baked-in, simply to avoid errors, but you can opt-out by
          setting "NETMON=0" in XROUTER.CFG.

- Updated: TCP.MAN, L3RTT.9.MANLINKS.MAN, STATS.MAN, ROUTES.MAN,
           BCAST.MAN. NODES.MAN, STATS.HLP, NODES.HLP, DISTRIB.SYS.MAN,

- Created: L4LINKS.MAN


